/* 
 * File:   OperacionSincronizacionInicialRepositorio.cpp
 * Author: maximiliano
 * 
 * Created on 10 de junio de 2013, 19:02
 */

#include <iostream>
#include <fstream>
#include "client_OperacionSincronizacionInicialRepositorio.h"
#include "client_OperacionActualizacionEstadoRepositorioLocal.h"
#include "common_RepositorioBuilder.h"
#include "common_TokenFactory.h"
#include "client_Operacion.h"
#include "client_OperacionSecuencial.h"

using namespace std;
using namespace TP::Operaciones;
using namespace TP::Archivos;
using namespace TP::Comunicacion;


OperacionSincronizacionInicialRepositorio::OperacionSincronizacionInicialRepositorio(uint32_t pToken, FileServiceProxy* pFileService): OperacionSecuencial (pToken){
    
    _repositorioLocal = NULL;
    _repositorioServidor = NULL;
    _fileService = pFileService;
    
    
    this->AgregarOperacion(new OperacionObtenerRepositorio(TokenFactory::Crear(), &_repositorioServidor, _fileService));
    this->AgregarOperacion(new OperacionActualizacionEstadoRepositorioLocal(TokenFactory::Crear(), &_repositorioLocal, &_repositorioServidor, _fileService));
    this->AgregarOperacion(new OperacionSincronizacionArchivosNuevos (TokenFactory::Crear(), &_repositorioLocal, &_repositorioServidor, _fileService));
    this->AgregarOperacion(new OperacionSincronizacionArchivosEliminados(TokenFactory::Crear(), &_repositorioLocal, &_repositorioServidor, _fileService));
//    this->AgregarOperacion(new OperacionSincronizacionArchivosModificados (TokenFactory::Crear(), &_repositorioLocal, &_repositorioServidor, _fileService));
    
    
}

OperacionSincronizacionInicialRepositorio::~OperacionSincronizacionInicialRepositorio() {}

Repositorio* OperacionSincronizacionInicialRepositorio::setRepositorioLocal (Repositorio* pRepositorio){
    _repositorioLocal = pRepositorio;
    return pRepositorio;
}